package fr.afcepf.atod18.commande.web;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;



import fr.afcepf.atod18.commande.entity.Panier;
import fr.afcepf.atod18.commande.entity.ProduitSelectionne;
import fr.afcepf.atod18.commande.service.IGestionPanier;
import fr.afcepf.atod18.restaurants.entity.Restaurant;
import fr.afcepf.atod18.restaurants.service.IGestionProduit;

@ManagedBean
@SessionScoped
public class PanierMB {
	@ManagedProperty(value="#{gestionPanier}")
	private IGestionPanier gestionPanier;
	@ManagedProperty(value="#{gestionProduit}")
	IGestionProduit gestionProduit;
	
	@ManagedProperty(value="#{commandeMB}")
	CommandeMB commandeMB;
	
	private Integer idSelProduit;
	private Integer idSelPanier;
	private String login;
	private Panier panier;
	private List<Panier> paniers;
	private List<ProduitSelectionne> listeProduits;
	private Restaurant restaurantSelectionne;
	
	
	public Restaurant getRestaurantSelectionne() {
		return restaurantSelectionne;
	}
	public void setRestaurantSelectionne(Restaurant restaurantSelectionne) {
		this.restaurantSelectionne = restaurantSelectionne;
	}
	public CommandeMB getCommandeMB() {
		return commandeMB;
	}
	public void setCommandeMB(CommandeMB commandeMB) {
		this.commandeMB = commandeMB;
	}
	public IGestionProduit getGestionProduit() {
		return gestionProduit;
	}
	public void setGestionProduit(IGestionProduit gestionProduit) {
		this.gestionProduit = gestionProduit;
	}
	public Panier getPanier() {
		return panier;
	}
	public void setPanier(Panier panier) {
		this.panier = panier;
	}
	public Integer getIdSelProduit() {
		return idSelProduit;
	}
	public void setIdSelProduit(Integer idSelProduit) {
		this.idSelProduit = idSelProduit;
	}
	public Integer getIdSelPanier() {
		return idSelPanier;
	}
	public void setIdSelPanier(Integer idSelPanier) {
		this.idSelPanier = idSelPanier;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public List<Panier> getPaniers() {
		return paniers;
	}
	public void setPaniers(List<Panier> paniers) {
		this.paniers = paniers;
	}
	public IGestionPanier getGestionPanier() {
		return gestionPanier;
	}
	public void setGestionPanier(IGestionPanier gestionPanier) {
		this.gestionPanier = gestionPanier;
	}
	public List<ProduitSelectionne> getListeProduits() {
		System.out.println("id sel panier : "+idSelPanier);
		if (idSelPanier==null){
			idSelPanier =1;
			panier=new Panier();
			System.out.println(panier);
		}	
		System.out.println("id panier :"+idSelPanier);
		System.out.println("panier : "+panier);
		System.out.println("gestion panier :"+gestionPanier);
			paniers = gestionPanier.rechercherParId(idSelPanier);
			System.out.println(paniers);
			panier= paniers.get(0);
			System.out.println(panier);
			listeProduits = new ArrayList<ProduitSelectionne>();
			listeProduits.addAll(panier.getProduitSelectionnes());
			System.out.println(listeProduits);
		Collections.sort(listeProduits);
		return listeProduits;
	}
	public void setListeProduits(List<ProduitSelectionne> listeProduits) {
		this.listeProduits = listeProduits;
	} 

	
	public String doSelection(){
		System.out.println("selection"+ idSelProduit);
		return null;
		
	}
	public String doSauve(){
		panier.setTotalPanier(0);
		for (ProduitSelectionne ps : listeProduits){
			//if(ps.getQuantite()==0){listeProduits.remove(ps);}
			panier.setTotalPanier(panier.getTotalPanier() + ps.getQuantite()*ps.getProduit().getPrix());
		}
		gestionPanier.modifier(panier);
		return null;
		
	}
	public String doCommande(){
		System.out.println(" pour "+ login);
		if (login==null){
			return null;
		}
		else{
			commandeMB.setLogin(login);
			commandeMB.setIdSelPanier(idSelPanier);
			System.out.println("commande pour "+ login);
			return "commande";
		}
		
	}
	
}
